﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ComunesMGI.DataTypes;
using System.IO;
using ComunesMGI.Enums;

namespace OutlookMGI.AccesoDatos
{
    class MGIFachada : IMGI
    {
        #region IMGI Members

        public List<DataCliente> GetClientes()
        {

            MGIClientesSistemasWS.MGIClientesSistemasWSClient ws = new MGIClientesSistemasWS.MGIClientesSistemasWSClient();
            ws.Open();
            List<DataCliente> ret = ws.GetClientes();
            ws.Close();
            return ret;
        }

        public List<DataSistema> GetSistemas(int codcli)
        {
            MGIClientesSistemasWS.MGIClientesSistemasWSClient ws = new MGIClientesSistemasWS.MGIClientesSistemasWSClient();
            ws.Open();
            List<DataSistema> ret = ws.GetSistemas(codcli);
            ws.Close();
            return ret;
        }

        public List<DataCampo> GetCampos(int siscod, Lista lista)
        {
            MGIIncidentesWS.MGIIncidentesWSClient ws = new MGIIncidentesWS.MGIIncidentesWSClient();
            ws.Open();
            List<DataCampo> ret = ws.GetCampos(siscod, lista);
            ws.Close();
            return ret;
        }

        public DataAltaIncidente AddIncidente(DataSistema incidente, List<string> archivos)
        {
            MGIIncidentesWS.MGIIncidentesWSClient ws = new MGIIncidentesWS.MGIIncidentesWSClient();
            ws.Open();
            DataAltaIncidente ret = ws.AddIncidente(incidente);
            if (archivos != null)
            {
                foreach (string path in archivos)
                {
                    FileStream fStream = new FileStream(path, FileMode.Open, FileAccess.Read);
                    string sTmp = ws.UploadFile(fStream);
                    fStream.Close();
                    fStream.Dispose();

                    DataIncidente inc = new DataIncidente(ret.IdIncidente, String.Empty);
                    ws.AdjuntarArchivoIncidente(Path.GetFileName(path), incidente.Codigo,inc.IdIncidente , sTmp);
                }
            }
            ws.Close();
            return ret;
        }

        #endregion
    }
}
